package tptecnicas.printers.parser;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import tptecnicas.logging.MessageInfo;

/**
 * Clase encargada de analizar y resolver el codigo 
 * asociado al archivo desde donde se logueo, en el formato de log.
 */
public class FilenameReplacer implements FormatReplacer {

	private Pattern patternToMatch;
	private Matcher matcher;

	/*Constructor
	@param token: format identifier to replace
	*/
	public FilenameReplacer(){
		patternToMatch = Pattern.compile("%F");
	}

	@Override
	public String toString() {
		return "file";
	}
	
	@Override
	public String replace(MessageInfo info, String formatLine) {
		matcher = patternToMatch.matcher(formatLine);
		return matcher.replaceAll(info.getCallerFilename());
	}

	@Override
	public String getValue(MessageInfo info) {
		return info.getCallerFilename();
	}
}
